package co.inventario.modelo.negocio;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;

import co.inventario.datos.sqlserver.DepartamentoDAOSQLServer;
import co.inventario.datos.sqlserver.PaisDAOSQLServer;
import co.inventario.entidad.DepartamentoDTO;
import co.inventario.entidad.PaisDTO;

public class DepartamentoNegocio {

	public void crear(DepartamentoDTO departamentoDTO, Connection connection) throws Exception, SQLException {
		DepartamentoDAOSQLServer departamentoDAOSQLServer = new DepartamentoDAOSQLServer();
		DepartamentoDTO departmentoDTOConsultado = departamentoDAOSQLServer.consultarPorNombre(departamentoDTO, connection);
		if (departmentoDTOConsultado == null) {
			departamentoDAOSQLServer.crear(departamentoDTO, connection);
		} else {
			throw new Exception("El departamento que intenta crear, ya existe.");
		}
	}

	public void actualizar(DepartamentoDTO departamentoDTO, Connection connection) throws Exception, SQLException {
		DepartamentoDAOSQLServer departamentoDAOSQLServer = new DepartamentoDAOSQLServer();
		DepartamentoDTO departmentoDTOConsultado = departamentoDAOSQLServer.consultarPorCodigo(departamentoDTO, connection);
		if (departmentoDTOConsultado != null) {
			departamentoDAOSQLServer.actualizar(departamentoDTO, connection);
		} else {
			throw new Exception("El departamento que intenta Actualizar, no existe.");
		}
	}

	public DepartamentoDTO consultarPorCodigo(DepartamentoDTO departamentoDTO, Connection connection) throws Exception, SQLException {
		DepartamentoDAOSQLServer departamentoDAOSQLServer = new DepartamentoDAOSQLServer();
		DepartamentoDTO departamentoDTOConsultado = departamentoDAOSQLServer.consultarPorCodigo(departamentoDTO, connection);
		return departamentoDTOConsultado;
	}

	public ArrayList<DepartamentoDTO> consultarTodo(Connection connection) throws Exception, SQLException {
		
		DepartamentoDAOSQLServer departamentoDAOSQLServer = new DepartamentoDAOSQLServer();
		PaisDAOSQLServer paisDAOSQLServer = new PaisDAOSQLServer();
		ArrayList<DepartamentoDTO> departamentoDTOLista = departamentoDAOSQLServer.consultarTodo(connection);
		PaisDTO paisDTO = null;
		
		for (DepartamentoDTO departamentoDTO : departamentoDTOLista) {
			paisDTO = paisDAOSQLServer.consultarPorCodigo(departamentoDTO.getPaisDTO(), connection);
			departamentoDTO.setPaisDTO(paisDTO);
		}
		return departamentoDTOLista;
	}

	
}
